home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2001 January / Game.EXE_01_2001.iso / demos / Blade of Darkness / data1.cab / Program_Executable_Files / Lib / LoadBar.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-11-16  |  8.6 KB  |  196 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import BBLib
  5. import Raster
  6. import Bladex
  7. BAR_X = 64.0
  8. BAR_Y = 425.0
  9.  
  10. class BaseProgressBar:
  11.     '''Clase base de las barras de progreso de carga'''
  12.     
  13.     def __init__(self, total_increments):
  14.         self.total_increments = total_increments
  15.         self.RectSize = (512.0, 16.0)
  16.         self.SolidBar = 0
  17.         self.hBmpBar = None
  18.         self.PrefixText = 'Loading '
  19.         if not (self.SolidBar):
  20.             Bladex.ReadBitMap('../../Data/Gray_progress_bar.bmp', 'LoadBarBmp')
  21.             self.hBmpBar = Raster.BmpHandle('LoadBarBmp')
  22.         
  23.  
  24.     
  25.     def __del__(self):
  26.         self.Clear()
  27.  
  28.     
  29.     def Clear(self):
  30.         pass
  31.  
  32.     
  33.     def BarIncrement(self, n_file, text):
  34.         if Raster.ClassIdName() == 'B_Direct3DRasterDevice':
  35.             if n_file % 10:
  36.                 return None
  37.             
  38.         
  39.         str = '%s%s.' % (self.PrefixText, text)
  40.         percentage = float(n_file) / float(self.total_increments)
  41.         if percentage > 1.0:
  42.             percentage = 1.0
  43.         
  44.         (w, h) = Raster.GetSize()
  45.         AdjustedRectWidth = self.RectSize[0] * w / 640.0
  46.         AdjustedRectHeight = self.RectSize[1] * h / 480.0
  47.         Raster.Cls(0, 0, 0)
  48.         Raster.SetAlpha(0.8)
  49.         percentage_width = percentage * self.RectSize[0]
  50.         AdjustedRectX = BAR_X * w / 640.0
  51.         AdjustedRectY = BAR_Y * h / 480.0
  52.         x1 = AdjustedRectX
  53.         x2 = x1 + AdjustedRectWidth
  54.         y1 = AdjustedRectY
  55.         y2 = AdjustedRectY + AdjustedRectHeight
  56.         Raster.SetPenColor(0, 0, 0)
  57.         Raster.Rectangle(x1, y1, x2, y2)
  58.         if self.SolidBar == 1:
  59.             x2 = x1 + percentage * AdjustedRectWidth
  60.             Raster.SetFillColor(140, 220, 10)
  61.             Raster.SolidRectangle(x1, y1, x2, y2)
  62.         else:
  63.             Raster.SetPosition(x1, y1)
  64.             Raster.SetPenColor(180, 23, 44)
  65.             Raster.DrawBitmap(self.hBmpBar, percentage * AdjustedRectWidth, AdjustedRectHeight)
  66.             Raster.SetPosition(0, 0)
  67.         Raster.SysWrite(10, h - 25, str, 240, 240, 20)
  68.         Raster.SwapBuffers()
  69.  
  70.  
  71.  
  72. class BackImageBar:
  73.     
  74.     def __init__(self, background_image = None):
  75.         self.imagehook = 0
  76.         if background_image:
  77.             back_image = BBLib.B_BitMap24()
  78.             if back_image.ReadFromFile(background_image):
  79.                 (w, h) = back_image.GetDimension()
  80.                 Raster.SetBackgroundImage(w, h, 'RGB', 'Normal', 'Stretch', back_image.GetData())
  81.                 Raster.Cls(0, 0, 0)
  82.                 Raster.SwapBuffers()
  83.                 self.imagehook = 1
  84.             
  85.         
  86.  
  87.     
  88.     def Clear(self):
  89.         if self.imagehook:
  90.             Raster.RemoveBackgroundImage()
  91.             self.imagehook = 0
  92.         
  93.  
  94.  
  95.  
  96. class ProgressBar(BaseProgressBar, BackImageBar):
  97.     '''Clase auxiliar para poner una barra de progreso durante la carga de un nivel'''
  98.     
  99.     def __init__(self, total_increments, background_image = None, auto_remove = 1):
  100.         BaseProgressBar.__init__(self, total_increments)
  101.         BackImageBar.__init__(self, background_image)
  102.         BBLib.ResetnOpenedInputFiles()
  103.         BBLib.SetOnOpenInputFileFunc(self.BarIncrement)
  104.         self.filehook = 1
  105.         if auto_remove:
  106.             Bladex.AddScheduledFunc(0, self.Clear, ())
  107.         
  108.  
  109.     
  110.     def Clear(self):
  111.         BaseProgressBar.Clear(self)
  112.         BackImageBar.Clear(self)
  113.         if self.filehook:
  114.             BBLib.RemoveOnOpenInputFileFunc()
  115.             self.filehook = 0
  116.         
  117.  
  118.  
  119.  
  120. class AutoProgressBar(BaseProgressBar, BackImageBar):
  121.     
  122.     def __init__(self, total_increments, prefix_text = 'Loading', background_image = None):
  123.         BaseProgressBar.__init__(self, total_increments)
  124.         BackImageBar.__init__(self, background_image)
  125.         self.CurrentPoint = 0
  126.         self.PrefixText = prefix_text
  127.  
  128.     
  129.     def Increment(self, text = ''):
  130.         self.CurrentPoint = self.CurrentPoint + 1
  131.         self.BarIncrement(self.CurrentPoint, text)
  132.  
  133.     
  134.     def Clear(self):
  135.         BaseProgressBar.Clear(self)
  136.         BackImageBar.Clear(self)
  137.  
  138.  
  139.  
  140. class ECTSProgressBar(ProgressBar):
  141.     
  142.     def __init__(self, total_increments, background_image = None, auto_remove = 1):
  143.         ProgressBar.__init__(self, total_increments, background_image)
  144.         self.updated = 0
  145.  
  146.     
  147.     def BarIncrement(self, n_file, text):
  148.         if n_file > self.total_increments / 2 and not (self.updated):
  149.             BBLib.RemoveOnOpenInputFileFunc()
  150.             back_image = BBLib.B_BitMap24()
  151.             if back_image.ReadFromFile('Blade_progress2.jpg'):
  152.                 Raster.RemoveBackgroundImage()
  153.                 (w, h) = back_image.GetDimension()
  154.                 Raster.SetBackgroundImage(w, h, 'RGB', 'Normal', 'Stretch', back_image.GetData())
  155.                 Raster.Cls(0, 0, 0)
  156.                 Raster.SwapBuffers()
  157.             
  158.             self.updated = 1
  159.             BBLib.SetOnOpenInputFileFunc(self.BarIncrement)
  160.         
  161.         ProgressBar.BarIncrement(self, n_file, text)
  162.  
  163.  
  164.  
  165. class DemoProgressBar(ProgressBar):
  166.     
  167.     def __init__(self, total_increments, background_image = None):
  168.         self.updated = 1
  169.         self.segment_size = total_increments / 4
  170.         ProgressBar.__init__(self, total_increments, background_image)
  171.  
  172.     
  173.     def BarIncrement(self, n_file, text):
  174.         if Raster.ClassIdName() == 'B_Direct3DRasterDevice':
  175.             if n_file % 10:
  176.                 return None
  177.             
  178.         
  179.         if not n_file > 3 * self.segment_size and self.updated == 3:
  180.             if n_file > 2 * self.segment_size and self.updated == 2 and n_file > self.segment_size and self.updated == 1:
  181.                 BBLib.RemoveOnOpenInputFileFunc()
  182.                 back_image = BBLib.B_BitMap24()
  183.                 if back_image.ReadFromFile('Blade_progress' + `self.updated + 1` + '.jpg'):
  184.                     Raster.RemoveBackgroundImage()
  185.                     (w, h) = back_image.GetDimension()
  186.                     Raster.SetBackgroundImage(w, h, 'RGB', 'Normal', 'Stretch', back_image.GetData())
  187.                     Raster.Cls(0, 0, 0)
  188.                     Raster.SwapBuffers()
  189.                 
  190.                 self.updated = self.updated + 1
  191.                 BBLib.SetOnOpenInputFileFunc(self.BarIncrement)
  192.             
  193.         ProgressBar.BarIncrement(self, n_file, text)
  194.  
  195.  
  196.